package com.gopay.cashier.web.utils;

import com.gopay.common.util.NonrevEncr;
import com.gopay.common.util.pwd.UserPwdUtil;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;

/**
 * Created by HJY on 2014/12/22.
 * 支付密码问题
 */
public class PayPwdQuestionsInfo {

    public static String  oldQues[] = {"你第一所就读的学校？","你最喜欢的电影？","你最喜欢的菜肴？","你的出生地？","你的宠物的名字？", "你的母亲的生日？"};
    public static String newQues[] = {"你妈妈的名字是？","你爸爸的名字是？","你爱人的名字是？","你妈妈的生日是？","你爸爸的生日是？","你第一个子女的名字是？","你妈妈的出生地？","你爸爸的出生地？","你的出生地？","你第一所就读的学校？"};


    /**
     * 获取新支付密码问题列表
     * 据2014年12月注册流程优化需求
     * @return
     */
    public  static List<String> getNewQuestionList(){
        return Arrays.asList(newQues);
    }

    /**
     * 解密安全问题
     * @param custId
     * @param md5Ques
     * @return
     */
    public static String getQuestion(String custId,String md5Ques){
        for(String qus : oldQues ){
        	/**
        	 * modified by zyt,根据密文长度，自动返回对应的加密结果
        	 * 2017-1-13
        	 */
            String vQues = UserPwdUtil.getEncryptPwd(md5Ques, new StringBuilder(custId.trim()).append(qus.trim()));
            //String vQues = NonrevEncr.sha1((custId + qus).trim());
            if(StringUtils.equalsIgnoreCase(vQues, md5Ques)){
               return qus;
            }
        }
        for(String qus : newQues ){
        	/**
        	 * modified by zyt,根据密文长度，自动返回对应的加密结果
        	 * 2017-1-13
        	 */
            String vQues = UserPwdUtil.getEncryptPwd(md5Ques, new StringBuilder(custId.trim()).append(qus.trim()));
            //String vQues = NonrevEncr.sha1((custId + qus).trim());
            if(StringUtils.equalsIgnoreCase(vQues, md5Ques)){
                return qus;
            }
        }
        return null;
    }
    
    /**
     * 解密登录安全问题
     * @param md5Ques
     * @return
     */
    public static String getLoginQuestion(String md5Ques){
        for(String qus : oldQues ){
        	/**
        	 * modified by zyt,根据密文长度，自动返回对应的加密结果
        	 * 2017-1-13
        	 */
            String vQues = UserPwdUtil.getEncryptPwd(md5Ques, new StringBuilder(qus.trim()));
            //String vQues = NonrevEncr.sha1(qus.trim());
            if(StringUtils.equalsIgnoreCase(vQues, md5Ques)){
               return qus;
            }
        }
        for(String qus : newQues ){
        	/**
        	 * modified by zyt,根据密文长度，自动返回对应的加密结果
        	 * 2017-1-13
        	 */
            String vQues = UserPwdUtil.getEncryptPwd(md5Ques, new StringBuilder(qus.trim()));
            //String vQues = NonrevEncr.sha1( qus.trim());
            if(StringUtils.equalsIgnoreCase(vQues, md5Ques)){
                return qus;
            }
        }
        return null;
    }
}
